Data may be stored in many types of storage mechanisms, such as databases and file servers. Each storage mechanism typically has its own means of access. For example, the SQL protocol is typically used to perform operations on a database, and the NFS protocol is typically used to perform operations on a file system. The SQL protocol is an ANSI standard for accessing and manipulating data stored in a database. The NFS protocol is a distributed file system protocol that supports the performance of file operations on files across a network. NFS is a well-known standard for sharing files between UNIX hosts. In the NFS protocol, file system operations are performed on files using a filehandle, which is an identifier that identifies a particular file. The current version of NFS, version 4, which is specified in RFC 3010, supports additional functionality over version 3, such as enhancements to security and to the performance of stateful operations.
Currently, database management systems do not support accessing data items within a database using the NFS protocol. Thus, when a user wishes to access data, the user must ascertain which type of storage mechanism is storing the data to determine to the appropriate manner in which to access the data. For example, to determine whether the NFS protocol may be used, the user must determine whether the data is stored relationally in a database or in a file system. In many circumstances it may be cumbersome for the user to determine in which storage mechanism the data is actually stored.
Further, for a variety of reasons, it is desirable to store as many kinds of data as possible in a single storage mechanism. For example, minimizing of the number of different types of storage mechanisms that are used to store data tends to reduce the amount of resources required to maintain the storage mechanisms. Also, storing many kinds of data in a central location, such as a database, promotes ease of use and security, as data is not stored in a plurality of mechanisms, each of which may implement security differently.
Consequently, an approach for performing file system operations within a database management system is desirable. The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.